package cn.qayy.dao;

import java.util.List;
import java.util.Map;

import cn.qayy.dto.CountryOver1k;
import cn.qayy.dto.ErrataDTO;
import cn.qayy.dto.PlanVo;
import cn.qayy.dto.PlansDTO;
import cn.qayy.dto.TerminalOver1k;
import cn.qayy.dto.calsum;
import cn.qayy.po.Basis;
import cn.qayy.po.KdbNssFocuson;
import cn.qayy.po.KdbNssGoodfriend;
import cn.qayy.po.Plan;
import cn.qayy.service.Uploadable;

public interface PlanMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Plan record);

    int insertSelective(Plan record);

    Plan selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Plan record);

    int updateByPrimaryKey(Plan record);

    int updateByList(List<?> planlist);

    int insertByList(List<?> planlist);
    
    List<Plan> selectByIds(List<String> list);

    int deleteByList(List<?> list);

    //List<Map<String, Object>> selectBy(Map<String,Object> map) ;
    
    List<Map<String, Object>> selectPlanBy(Map<String,Object> map) ;

    List<String> autoSelectBy();

    List<Map<String, String>> selectGroup();
    
    int updateStatus(Map<String,Object> statusMap);
    
    int updateImport(Map<String,Object> importMap);
    
    int updateGoodFriend(Map<String,Object> gFriendMap);
    
    int insertGoodFriend(Map<String,Object> gFriendMap);
    
    int insertImport(Map<String,Object> importMap);

	List<String> findRealNaturalFlowKeys(Map<String, Object> params);

	List<Plan> selectByMap(Map<String, Object> params) throws Exception;

	List<Map<String, Object>> selectGoodfriendByMap(Map<String, Object> params);

	List<Map<String, Object>> selectFocusByMap(Map<String, Object> params);

	int updateErrataByList(List<ErrataDTO> list);

	void updateOther(List<Plan> updateOtherYiFan);

	List<Plan> selectYifanKuCun(Map<String, Object> params);

	List<Plan> selectJiafanKuCun(Map<String, Object> params);

	int updateByListNoLimit(List<Plan> list);

	int deleteByIdList(List<String> idList);

	calsum selectSumBy(Map<String, Object> params);

	List<Integer> selectIdsByMap(Map<String, Object> params);

	List<CountryOver1k> selectCountryOver1k(Map<String, Object> params);

	List<TerminalOver1k> selectTerminalOver1k(Map<String, Object> params);

	List<calsum> selectSumByMode(Map<String, Object> params);
	
	Map<String, String> selectBasisForTask(Map<String, String> params);
	
	List<Map<String, String>> selectCountForTask(Map<String, String> params);
	
	String selectActualForTask(Map<String, String> params);
	
	List<Plan> selectBeforeByIds(List<Plan> plan);
}